<?php

/**
 * Error
 * 
 * Ручной обработчик ошибок
 * Все ошибки фреймворка выводятся вот через этот файлик
 * 
 * @author Игорь Будасов aka Lord <igor.budasov@gmail.com> 
 */
 
class Error 
{

    /**
     * Управление ошибками 
     *
     * @param exception $exception Перехватываемое исключение
     */
     
    public static function catchException(Exception $exception) 
    {
        
        // Получение текста ошибки
        $message = $exception->getMessage();
        
        // Получение трейса ошибки как строки
        $traceStr = $exception->getTraceAsString();
        $str = 'ERROR: ' . $message . "\n" . $traceStr;
        $trace = $exception->getTrace();
        $config = Zend_Registry::get('config');
        
        // Если включен режим отладки отображаем сообщение о ошибке на экран
        if($config->debug->on) {
            echo '<h3>'.$message.'</h3>';
            echo '<table width=100%>';
            foreach($trace as $item)
            {
                echo '<tr>';
                echo '<td>'.$item['line'].'</td>';
                echo '<td>'.$item['class'] . $item['type'] . $item['function'] .'</td>';
                echo '<td>'.$item['file'].'</td>';
                echo '</tr>';
            }
            echo '<table>';
        } 
        // Иначе выводим сообщение об ошибке 
        else {
            // Здесь может происходить логирование ошибки, уведомление вебмастера и т д
            die('<br /><br /><br /><br /><br /><br /><br /><br />
            <center><h1>System error</h1>But you can try later :)</center>');
        } 
    }
}